import { useLocationStore } from '@/stores'

/**
 * 获取经纬度
 */
export const getLongitudeAndLatitude = () => {
  return new Promise((resolve, reject) => {
    uni.getLocation({
      type: 'wgs84',
      isHighAccuracy: true,
      accuracy: 'best', // 精度值为20m
      success: async ({ latitude, longitude }) => {
        resolve({
          latitude,
          longitude
        })
      },
      fail: (error) => {
        reject(error)
      }
    })
  })
}

/**
 * 获取所在位置
 */
export async function getLocation() {
  try {
    const locationStore = useLocationStore()
    // 获取经纬度
    const { longitude: lng, latitude: lat } = await getLongitudeAndLatitude()
    // 位置存储在 pinia
    await locationStore.getLocationAction({
      lat,
      lng
    })
  } catch (e) {
    uni.showToast({
      title: e.message || '对不起,获取数据失败',
      icon: 'none'
    })
  }
}
